Integrations

On this page:

OSS Adapters

EAI

The EAI adapter is used to interact with the Ericsson Adaptive Inventory (EAI) platform. It currently integrates with the following:

Entity Operation
card (get, create, update and delete)
container (get, create, update and delete)
equipment (get, create, update and delete)
port (get, create, update and delete)
shelf (get, create, update and delete)
site (get, create, update and delete)
slot (get, create, update and delete)
trail (get, create, update and delete)
generic (get, create, update and delete)

Properties

Use the information in the table below to set the EAI Adapter properties. The host, port, and credentials are used to connect to EAI upon the adapter initially coming up. A connectivity check tells IAP the adapter has loaded successfully. The healthcheck tells IAP that it can reach EAI. The throttle section is all about throttling requests to EAI, and the request section defines properties to help handle requests.

Property Name Type Description
host String Required. The IP or hostname of the EAI server.
port Number Required. The port of the EAI server.
protocol String Optional. Tells the adapter whether to use HTTP or HTTPS (http is the default).
credentials.db_host String Required. The IP or hostname of the database server.
credentials.db_name String Required. The name of the database to connect to.
credentials.token String Required. An authentication token used to authenticate with the EAI server.
stub Boolean Optional. Indicates whether the stub should run instead of making calls to EAI (very useful during basic testing). The default is false, which means connect to EAI.
throttle.throttle_enabled Boolean Optional. Defaults to false and simply states whether the adapter should use throttling or not.
throttle.number_pronghorns Number Optional. Defaults to 1 and states whether the throttling is done in a single IAP instance or whether requests are throttled across multiple IAPs. This is an important property for performance enhancements. Throttling in a single IAP uses an in-memory queue so there is less overhead. Throttling across multiple IAPs requires putting the request and queue information into a shared resource (e.g. database) so that each IAP can determine what is running and what is next to run. This requires additional IO overhead.
throttle.sync_async String Optional. Not used at this time. It is for future expansion of the throttling engine.
throttle.max_in_queue Number Optional. The maximum number of requests that IAP should allow into the queue before rejecting requests. This is not necessarily a limit on what IAP can handle but more about timely responses to the requests. The default is currently 1000.
throttle.concurrent_max Number Optional. Defines the number of request that IAP can send to EAI at one time. The default is 1 meaning each request must be sent to EAI in a serial manner.
throttle.expire_timeout Number Optional. This is a graceful timeout of the request session. After the request has completed, IAP will wait the additional expire timeout time (in milliseconds) prior to sending in the next request. Expire timeout defaults to 0.
throttle.avg_runtime Number Optional. An approximate average of how long it takes EAI to handle each request. This is an important number as it has performance implications. If the number is defined too low, it puts extra burden on IAP CPU and memory as the requests will continually try to see if they can run. If the number is defined too high, requests may wait longer than they need to before running. The number does not need to be exact but your throttling strategy depends heavily on this number being within reason. If averages range from 50 to 250 milliseconds you might pick an average run-time somewhere in the middle so that when EAI performance is exceptional you might be a little slower than you might like, but when it is poor you still run efficiently. The default is 200 milliseconds.
request.number_retries Number Tells IAP how many times to retry a request that has either aborted or taken the limit error before giving up and returning an error.
request.limit_retry_error Number Optional. The HTTP error status number which defines that no capacity was available and, after waiting a short interval, the adapter can retry the request. The default is 0.
request.attempt_timeout Number How long IAP should wait before aborting the attempt. On abort, IAP will back off the requests and run a healthcheck until it re-establishes connectivity to EAI and then it will re-attempt the request that aborted. The attempt timeout is optional and defaults to 5000 milliseconds.
request.archiving Boolean Optional. The default is false. The archiving flag archives the request, the results and various times (wait time, EAI time and overall time) in the eai_results collection in MongoDB. Before enabling this capability think about how much to archive and develop a strategy for cleaning up the collection in the database so that it does not get too large, especially if the responses are large.

Sample Configuration

A sample configuration for the EAI adapter is provided. Be sure to configure the following properties.

  • host
  • port
  • protocol
  • credentials.dbHost
  • credentials.dbName
  • credentials.token
{
  "id": "eai",
  "type": "EAI",
  "properties": {
    "host": "eai.example.com",
    "port": 443,
    "protocol": "https",
    "credentials": {
      "dbHost": "eai.example.com",
      "dbName": "granite",
      "token": "Basic ABCDEFG=="
    },
    "stub": false,
    "throttle": {
      "throttle_enabled": false,
      "number_pronghorns": 1,
      "sync_async": "sync",
      "max_in_queue": 1000,
      "concurrent_max": 1,
      "expire_timeout": 0,
      "avg_runtime": 200
    },
    "request": {
      "number_retries": 3,
      "limit_retry_error": 401,
      "attempt_timeout": 5000,
      "archiving": false
    }
  }
}

Service Now

The ServiceNow Adapter interacts with the ServiceNow platform. It currently integrates with the following.

ServiceNow Methods
CMDB Config Item (get, create, and update)
Incident (get, create, and update)
Problems (get, create, and update)
Change Request (get, create, and update)
Catalog Request (get, create, and update)
Catalog Request Item (get, create, and update)
Knowledge Base Article (get, create, and update)
User (get, create, and update)
Group (get, create, and update)
generic (get, create, and update)

Properties

Use the information in the table below to set the ServiceNow adapter properties. The host, port, and credentials are used to connect to ServiceNow upon the adapter initially coming up. A connectivity check tells IAP the adapter has loaded successfully. The healthcheck tells IAP that it can reach ServiceNow. The throttle section is all about throttling requests to ServiceNow, and the request section defines properties to help handle requests.

Property Name Type Description
host String Required. The IP or hostname of the ServiceNow server.
port Number Required. The port of the ServiceNow server.
protocol String Optional. Tells the adapter whether to use HTTP or HTTPS (http is the default).
credentials.username String Required. The username to use when authenticating with ServiceNow.
credentials.password String Required. The password to use when authenticating with ServiceNow.
credentials.token String Required. The token used to authenticate with ServiceNow.
stub Boolean Optional. Indicates whether the stub should run instead of making calls to ServiceNow (very useful during basic testing). The default is false, which means connect to ServiceNow.
throttle.throttle_enabled Boolean Optional. Defaults to false and simply states whether the adapter should use throttling or not.
throttle.number_pronghorns Number Optional. Defaults to 1 and states whether the throttling is done in a single IAP instance or whether requests are throttled across multiple IAPs. This is an important property for performance enhancements. Throttling in a single IAP uses an in-memory queue so there is less overhead. Throttling across multiple IAPs requires putting the request and queue information into a shared resource, e.g., database,so that each IAP can determine what is running and what is next to run. This requires additional IO overhead.
throttle.sync_async String Optional. Not used at this time. It is for future expansion of the throttling engine.
throttle.max_in_queue Number Optional. The maximum number of requests that IAP should allow into the queue before rejecting requests. This is not necessarily a limit on what IAP can handle but more about timely responses to the requests. The default is currently 1000.
throttle.concurrent_max Number Optional. Defines the number of request that IAP can send to ServiceNow at one time. The default is 1 meaning each request must be sent to ServiceNow in a serial manner.
throttle.expire_timeout Number Optional. This is a graceful timeout of the request session. After the request has completed, IAP will wait the additional expire timeout time (in milliseconds) prior to sending in the next request. Expire timeout defaults to 0.
throttle.avg_runtime Number Optional. An approximate average of how long it takes ServiceNow to handle each request. This is an important number as it has performance implications. If the number is defined too low, it puts extra burden on IAP CPU and memory as the requests will continually try to see if they can run. If the number is defined too high, requests may wait longer than they need to before running. The number does not need to be exact but your throttling strategy depends heavily on this number being within reason. If averages range from 50 to 250 milliseconds you might pick an average run-time somewhere in the middle so that when ServiceNow performance is exceptional you might be a little slower than you might like, but when it is poor you still run efficiently. The default is 200 milliseconds.
request.number_retries Number Tells IAP how many times to retry a request that has either aborted or taken the limit error before giving up and returning an error.
request.limit_retry_error Number Optional. The HTTP error status number which defines that no capacity was available and, after waiting a short interval, the adapter can retry the request. The default is 0.
request.attempt_timeout Number How long IAP should wait before aborting the attempt. On abort, IAP will back off the requests and run a healthcheck until it re-establishes connectivity to ServiceNow and then it will re-attempt the request that aborted. The attempt timeout is optional and defaults to 5000 milliseconds.
request.archiving Boolean Optional. The default is false. The archiving flag archives the request, the results and various times (wait time, ServiceNow time and overall time) in the servicenow_results collection in MongoDB. Before enabling this capability consider how much to archive and develop a strategy for cleaning up the collection in the database so that it does not become too large, especially if the responses are large.

Sample Configuration

A sample configuration for the ServiceNow adapter is provided. Be sure to configure the following properties:

  • host
  • port
  • protocol
  • credentials.username
  • credentials.password
  • credentials.token
{
  "id": "servicenow",
  "type": "ServiceNow",
  "properties": {
    "host": "customer.servicenow.com",
    "port": 443,
    "protocol": "https",
    "credentials": {
      "username": "",
      "password": "",
      "token": ""
    },
    "stub": false,
    "throttle": {
      "throttle_enabled": false,
      "number_pronghorns": 1,
      "sync_async": "sync",
      "max_in_queue": 1000,
      "concurrent_max": 1,
      "expire_timeout": 0,
      "avg_runtime": 200
    },
    "request": {
      "number_retries": 3,
      "limit_retry_error": 401,
      "attempt_timeout": 5000,
      "archiving": false
    }
  }
}

SQL

The SQL adapter allows interaction with a SQL database. This adapter can be configured for either direct SQL queries or in an object-relational mapping configuration. Reference the sample configurations for examples of each mode. Support for SSL/TLS encrypted connections will soon be available.

Properties

Property Name Type Description
host String Required. The IP or hostname of the SQL database.
port Number Required. The port of the SQL database.
dbName String The name of the SQL database.
credentials.user String The username to use when authenticating with the SQL database.
credentials.passwd String The password to use when authenticating with SQL database.
direct Boolean A boolean flag indicating whether a direct connection to the database will be established and exposed.
orm Boolean A boolean flag indicating the object-relational-mapping connection to the database will be established and exposed.
min Number The minimum number of concurrent connections to open. Only used for ORM connections.
max Number The maximum number of concurrent connections to open. Only used for ORM connections.
acquireTimeout Number The number of milliseconds to wait before declaring the attempt to acquire a database connection has failed. Only used for direct connections. Default is 10,000.
waitForConnection Boolean Determines the behavior of the adapter when no connections are available. Only used for direct connections. Default is true. If true, the request will be queued for response when a connection is available. If false, the request will error immediately.
connectionLimit Number The number of supported concurrent connections. Only used for direct connections. Default is 10.
queueLimit Number The maximum number of connection requests allowed in the connection queue. Only used for direct connections. Default is 10.

Direct Configuration

A sample configuration for direct SQL queries is provided. Be sure to configure the following properties.

  • host
  • port
  • dbName
  • credentials.user
  • credentials.passwd
{
  "id": "mysql",
  "type": "MySQLDriver",
  "properties": {
    "host": "localhost",
    "port": 8888,
    "dbName": "peering_insights",
    "credentials": {
      "user": "pronghorn",
      "passwd": "$ENC87eb897b507afc1796db49409dd026188a832188a7d7439b"
    },
    "direct": true,
    "orm": false,
    "acquireTimeout": 10000,
    "waitForConnection": true,
    "connectionLimit": 10,
    "queueLimit": 10
  }
}

ORM Configuration

A sample configuration for object-relational mapping is provided. Be sure to configure the following properties:.

  • host
  • port
  • dbName
  • credentials.user
  • credentials.passwd
{
  "id": "mysql",
  "type": "MySQLDriver",
  "properties": {
    "host": "localhost",
    "port": 8888,
    "dbName": "peering_insights",
    "credentials": {
      "user": "pronghorn",
      "passwd": "$ENC87eb897b507afc1796db49409dd026188a832188a7d7439b"
    },
    "direct": false,
    "orm": true,
    "min": 3,
    "max": 7
  }
}